package com.babyqiao.wallpaper.portal.service;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.macro.mall.common.api.CommonResult;
import com.macro.mall.common.domain.UserDto;
import com.macro.mall.model.UmsMember;
import org.springframework.transaction.annotation.Transactional;

/**
 * 会员管理Service
 * Created by macro on 2018/8/3.
 */
public interface UmsMemberService {
    /**
     * 根据用户名获取会员
     */
    UmsMember getByUsername(String username);

    /**
     * 根据会员编号获取会员
     */
    UmsMember getById(Long id);

    /**
     * 用户注册
     */
    @Transactional
    void register(String username, String password, String telephone, String authCode);

    /**
     * 生成验证码
     */
    String generateAuthCode(String telephone);

    /**
     * 修改密码
     */
    @Transactional
    void updatePassword(String telephone, String password, String authCode);

    /**
     * 获取当前登录会员
     */
    UmsMember getCurrentMember();

    /**
     * 根据会员id修改会员积分
     */
    void updateIntegration(Long id,Integer integration);


    /**
     * 获取用户信息
     */
    UserDto loadUserByUsername(String username);

  /**
   *登录后获得token
   * @Author QLZ
   * @Date 2021/2/23
   *  @param principal: 代表一个认证实体，这里可以是 用户名，邮箱，手机号
   @param password: 密码
   *  @return: com.macro.mall.common.api.CommonResult
   */

    CommonResult login(String principal, String password);


    /**
     * 微信小程序登录
     * @Author QLZ
     * @Date 2021/2/22
     *  @param code : 授权码
     *  @return: java.lang.String
     */


    CommonResult loginBywxMiniProgramService(String code) throws JsonProcessingException;

    /**
     * 根据openid获取用户信息
     * */
    UserDto loadUserByOpenid(String openid);
}
